mod lexer;

use std::{env, fs};

fn main() {
    // 收集命令行参数
    let args: Vec<String> = env::args().collect();

    // 检查是否提供了文件名
    if args.len() < 2 {
        eprintln!("Usage: {} <filename>", args[0]);
        std::process::exit(1);
    }

    // 获取文件名
    let filename = &args[1];

    // 读取输入文件
    let input = fs::read_to_string(filename).expect("Failed to read file");

    // for c in input.chars() {
    //     print!("{} ", c as u8);
    // }
    // println!();

    // 词法分析
    let tokens = lexer::tokenize(&input);

    for (i, token_info) in tokens.iter().enumerate() {
        if i == tokens.len() - 1 {
            eprint!("{}", token_info); // 最后一个不加换行
        } else {
            eprintln!("{}", token_info); // 其他加换行
        }
    }
}
